package com.shujia.day07.retu;

public class Code12ReturnOperator {
    public static void main(String[] args) {
        /*
        返回值类型
                基本类型:
                    当返回值类型为基本类型时，可以直接给定具体的值或变量
                引用类型:
                    类：当类作为方法的返回值类型时，返回的是该类的对象,或者是他的子类
                    抽象类：抽象类作为返回值时，可以返回其子实现类的对象

         */

        // 该编程方式称为 链式编程 在Scala语言中用的较多
        new TeacherUse2().getTeacher().fun();
    }


}


abstract class Teacher2 {
    abstract public void fun() ;
}

class TeacherImpl extends Teacher2{

    @Override
    public void fun() {
        System.out.println("这是教师的子实现类...");
    }
}

class TeacherUse2 {

    // 返回值类型是一个抽象类，抽象类没有具体的实现 返回其子实现类的对象
    public Teacher2 getTeacher() {
        // 也是因为多态的原因
        return new TeacherImpl();
    }
}
